module.exports = (app) => {
  const mongoose = app.mongoose;
  const Schema = mongoose.Schema;

  const PriceHistorySchema = new Schema({
    date: { type: Date, default: Date.now, required: true }, // 记录价格变动的日期
    price: { type: mongoose.Decimal128, required: true }, // 价格，使用Decimal128支持精确的货币金额
    fromwxid: { type: String, required: true },
    finalfrom_wxid: { type: String, required: true }, // 真实发送者 wxid
    finalfrom_groupnick: { type: String }, // 发消息者的群昵称（可选）
  });

  const ProductSchema = new Schema({
    wxid: { type: String, required: true, default: '' },
    brand: { type: String, required: true, default: '' }, // 品牌
    name: { type: String }, // 商品名称与型号
    price_history: [PriceHistorySchema], // 嵌入式文档数组，记录价格历史
    remarks: { type: String }, // 其他备注信息
    finalfrom_wxid: { type: String, required: true }, // 真实发送者 wxid
    finalfrom_groupnick: { type: String }, // 发消息者的群昵称（可选）
  });

  // 设置索引
  ProductSchema.index({ "name": 1 });  // 索引商品名称
  ProductSchema.index({ "brand": 1 });  // 索引商品类别
  ProductSchema.index({ "price_history.date": 1 });  // 索引价格历史中的日期

  return mongoose.model("Product", ProductSchema, "product");
};